The default behaviour of a <linearGradient> if gradientUnits="userSpaceOnUse" is set and x1, x2, y1, y2 are unset differs between browsers.
<svg class="definitions" width="50" height="50"> <defs> <linearGradient gradientUnits="userSpaceOnUse" id="gradient" x1="0" x2="150" y1="0" y2="0"> <stop offset="0" stop-color="#FF0000"></stop> <stop offset="0.5" stop-color="#00FF00"></stop> <stop offset="1" stop-color="#0000FF"></stop> </linearGradient> <linearGradient gradientUnits="userSpaceOnUse" id="gradientDefault"> <stop offset="0" stop-color="#FF0000"></stop> <stop offset="0.5" stop-color="#00FF00"></stop> <stop offset="1" stop-color="#0000FF"></stop> </linearGradient> </defs> </svg> <svg width="150" height="100"> <rect x="0" y="0" width="150" height="100" fill="url(#gradient)"></rect> </svg> <svg width="150" height="100"> <rect x="0" y="0" width="150" height="100" fill="url(#gradientDefault)"></rect> </svg>